package data; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Objects; import Helpers.BST; import Helpers.FileHelp; import Item.Order; import Item.Product; public class OPDept { private BST<Integer, Order> tree = new BST<Integer, Order>(); private int count = 0; private String path = "C:/a/Polipoly/P2/Orders.txt"; private String history = "C:/a/Polipoly/P2/History.txt"; private final int MAX = 50; public void getOrders() { FileHelp.openFile(path); Order order = new Order(); Product[] products = new Product[MAX]; int i; order.setName(FileHelp.readFile(path)); while (!Objects.equals(order.getName(), "end of file")) { order.setDate(FileHelp.readFile(path)); order.setNr(Integer.parseInt(FileHelp.readFile(path))); for (i = 0; i < order.getNr(); i++) { Product product = new Product(0); product.setPrice(Float.parseFloat(FileHelp.readFile(path))); product.setName(FileHelp.readFile(path)); product.setAmount(Integer.parseInt(FileHelp.readFile(path))); products[i] = product; } order.setProducts(products); products = new Product[MAX]; tree.put(count, order); count++; order = new Order(); order.setName(FileHelp.readFile(path)); } FileHelp.closeFile(); } public void confirmOrder(int index) { confirm(tree.get(index)); tree.delete(index); count--; } public void decrease() { count--; } public int lenght() { return tree.size(); } private void confirm(Order order) { try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(history, true)))) { out.println(order); } catch (IOException e) { } } public String[] getStringOrders() { String[] S = new String[MAX]; int i = 0; for (i = 0; i < count; i++) { S[i] = "" + tree.get(i).display(); } return S; } public void updateOrders() { int i; boolean first = true; if(tree.isEmpty()) try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(path, false)))) { out.print(""); } catch (IOException e) { } for (i = 0; i < count; i++) { if (first) { try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(path, false)))) { out.println(tree.get(i)); } catch (IOException e) { } first = false; } else try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(path, true)))) { out.println(tree.get(i)); } catch (IOException e) { } } } public void add(Order order) { tree.put(count, order); count++; } public void remove(int index) { tree.delete(index); count--; } public Order getOrder(int index) { return tree.get(index); } }